www.gusucode.com > MATLAB,汽车转弯识别源码程序 > MATLAB,汽车转弯识别源码程序/road recognition/final.m

    function road
% a=imread('vasanth80.jpeg');
arrow1=imread('arrow1.jpg');arrow1=imresize(arrow1,[50 50]);
arrow2=imread('arrow2.jpg');arrow2=imresize(arrow2,[50 50]);
arrow3=imread('arrow3.jpg');arrow3=imresize(arrow3,[50 50]);
arrow4=imread('arrow4.jpg');arrow4=imresize(arrow4,[50 50]);
arrow5=imread('arrow5.jpg');arrow5=imresize(arrow5,[50 50]);
cross=imread('cross.jpg');cross=imresize(cross,[50 50]);
readerobj = mmreader('roadtest.avi');
Frames = read(readerobj);
vidFrames = read(readerobj);
numFrames = get(readerobj, 'numberOfFrames');

r = readerobj.Height;
c = readerobj.Width;

for k = 1 : numFrames-1
   
mov(k).cdata = vidFrames(:,:,:,k);
a=mov(k).cdata;
z=mov(k).cdata;
    for i=1:r
        for j=1:c        
            if(a(i,j,1)>100&&a(i,j,2)>120&&a(i,j,3)>110&&a(i,j,1)<255&&a(i,j,2)<255&&a(i,j,3)<255)
                if(a(i,j,1)>120&&a(i,j,2)>190&&a(i,j,3)>120&&a(i,j,1)<160&&a(i,j,2)<255&&a(i,j,3)<150)
                z(i,j,1)=255;                z(i,j,2)=255;                z(i,j,3)=255;
                else
                z(i,j,1)=0;                z(i,j,2)=0;                z(i,j,3)=0;
                end
                else
                z(i,j,1)=255;                z(i,j,2)=255;                z(i,j,3)=255;
                end
                           
            end
            
            
    end

z=z(:,:,1);

 check=0;
         if(z(r,c/2)==0&&z(r-2,c/2)==0)

         for i=1:1:r-10
             if(z(i,1)&&z(i+1,1)&&z(i+2,1)&&z(i+4,1)&&z(i+5,1)==255&&z(i+10,1)==255)
                x=i;
             end
             if(z(i,c)&&z(i+1,c)&&z(i+2,c)&&z(i+4,c)&&z(i+5,c)==255&&z(i+10,c)==255)
                y=i;
             end
         end
         if(x>=160&&y>=160)
             if(x==y||x==y+2)
                a(120:169,120:169,:)=arrow3;
                check=1;
             elseif(x<y)
                a(120:169,120:169,:)=arrow4;
                check=1;
            elseif(x>y)
                a(120:169,120:169,:)=arrow2;
                check=1;
         end
        
         end
    if(check==0)
                a(120:169,120:169,:)=arrow5;
    end
         else
             a(120:169,120:169,:)=cross;
         end
         mov(k).cdata=a;
vidFrames(:,:,:,k)=mov(k).cdata;
% imagename=strcat(int2str(k), '.jpeg');
% imwrite(vidFrames(:,:,:,k), strcat('kewl',imagename));
end
implay(Frames);
implay(vidFrames);